---
title: Quickstart
edit-this-page-url: https://github.com/airweave-ai/airweave/blob/main/fern/docs/pages/quickstart.mdx
slug: quickstart
---

Follow this guide to get up and running with Airweave in just a few steps.

<Steps>

  <Step title="Choose your deployment" toc={true}>

   The simplest way to use Airweave is through our hosted cloud platform at [app.airweave.ai](https://app.airweave.ai).

   If you prefer to run Airweave yourself, you can deploy it locally on macOS, Linux or WSL. After cloning the repository and starting the server, you will be able to open the dashboard at http://localhost:8080

    ```bash
    git clone https://github.com/airweave-ai/airweave.git
    cd airweave
    ./start.sh
    ```
  </Step>

  <Step title="Set-up Airweave client" toc={true}>
   Airweave provides SDKs for Python and Node.js. Install the package.

    <CodeBlocks>
    ```bash title="Python"
    pip install airweave-sdk
    ```

    ```bash title="Node.js"
    npm install @airweave/sdk
    ```
    </CodeBlocks>

    Now, create and copy your API key from your Airweave dashboard.

    <video
      src="./airweave_api_key.mp4"
      controls
      loop
      autoplay
      muted
      playsinline
      style={{ aspectRatio: '16 / 9', width: '100%' }}
    >
      Your browser does not support the video tag.
    </video>
   Initialize the Airweave client with your new API key. For local deployments, set base_url to `"http://localhost:8001"`.

    <CodeBlocks>
    ```Python title="Python"
    from airweave import AirweaveSDK

    airweave = AirweaveSDK(api_key="YOUR_API_KEY", base_url="https://api.airweave.ai")
    ```

    ```javascript title="Node.js"
    import { AirweaveSDKClient } from "@airweave/sdk";

    const airweave = new AirweaveSDKClient({apiKey: "YOUR_API_KEY", base_url: "https://api.airweave.ai"});
    ```
    </CodeBlocks>

  </Step>

  <Step title="Create a collection" toc={true}>
    A collection is a group of different data sources that you can search using a single endpoint.

    <CodeBlocks>
    ```Python title="Python"
    collection = airweave.collections.create(name="My First Collection")

    print(f"Created collection: {collection.readable_id}")
    ```

    ```javascript title="Node.js"
    const collection = await airweave.collections.create({name: "My First Collection"});

    console.log(`Created collection: ${collection.readable_id}`);
    ```

    ```bash title="cURL"
    curl -X POST 'https://api.airweave.ai/collections' \
      -H 'x-api-key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{
        "name": "My First Collection"
      }'
    ```
    </CodeBlocks>
  </Step>

  <Step title="Add source connection(s) to your collection" toc={true}>
    A source connection links a specific app or database to your collection. It handles authentication and automatically syncs data.

<CodeBlocks>
```Python title="Python"
source_connection = airweave.source_connections.create(
    name="My Stripe Connection",
    short_name="stripe",
    readable_collection_id=collection.readable_id,
    authentication={
        "credentials": {
            "api_key": "your_stripe_api_key"  # Replace with real API key
        }
    }
)

print(f"Status: {source_connection.status}")
```

```javascript title="Node.js"
const sourceConnection = await airweave.sourceConnections.create({
  name: "My Stripe Connection",
  short_name: "stripe",
  readable_collection_id: collection.readable_id,
  authentication: {
    credentials: {
      api_key: "SK_TEST_YOUR_STRIPE_API_KEY"
    }
  }
});

console.log(`Status: ${sourceConnection.status}`);
```

```bash title="cURL"
curl -X POST 'https://api.airweave.ai/source-connections' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "My Stripe Connection",
    "short_name": "stripe",
    "readable_collection_id": "my-first-collection-abc123",
    "authentication": {
      "credentials": {
        "api_key": "SK_TEST_YOUR_STRIPE_API_KEY"
      }
    }
  }'
```
</CodeBlocks>
  </Step>

  <Step title="Search your collection" toc={true}>

You can now search your collection and get the most relevant results from all connected sources.

    <CodeBlocks>
```Python title="Python"
results = airweave.collections.search(
    readable_id=collection.readable_id,
    query="Find returned payments from user John Doe?",
)

for result in results.results:
  print(result)
```

```javascript title="Node.js"
const results = await airweave.collections.search(
  collection.readable_id,
  { query: "Find returned payments from user John Doe?" }
);

results.results.forEach(result => {
  console.log(result);
});
```

```bash title="cURL"
curl -X GET 'https://api.airweave.ai/collections/my-first-collection-abc123/search?query=Find%20returned%20payments%20from%20user%20John%20Doe%3F' \
  -H 'x-api-key: YOUR_API_KEY'
```
</CodeBlocks>
  </Step>

</Steps>

You've now successfully deployed Airweave, connected your first data source, and searched your first collection. To continue, you can explore more integrations and dive into the API reference. For community and support, check out the links below.

<CardGroup cols={2}>
  <Card
    title="GitHub Repository"
    icon="fa-brands fa-github"
    href="https://github.com/airweave-ai/airweave"
  >
    Join our growing open-source community.

    View code, contribute, and report issues.
  </Card>
  <Card
    title="Community Support"
    icon="fa-brands fa-discord"
    href="https://discord.gg/484HY9Ehxt"
  >
    Get help from our team and community.

    Share feedback and feature requests.
  </Card>
</CardGroup>
